SPI (Serial Peripheral Interface) হলো একটি উচ্চগতির, সিঙ্ক্রোনাস ডেটা ট্রান্সফার প্রোটোকল যা মাইক্রোকন্ট্রোলার এবং পেরিফেরাল ডিভাইসগুলোর মধ্যে দ্রুত যোগাযোগের জন্য ব্যবহৃত হয়। এটি সাধারণত সেন্সর, মেমরি কার্ড, ডিসপ্লে, এবং অন্যান্য পেরিফেরাল ডিভাইসের সাথে সংযোগ স্থাপনের জন্য ব্যবহৃত হয়।
SPI প্রোটোকলে মাস্টার ডিভাইস যোগাযোগ শুরু করে এবং ক্লক সিগন্যাল জেনারেট করে। MOSI এবং MISO লাইনগুলো ডেটা আদান-প্রদানের জন্য ব্যবহৃত হয়, যেখানে স্লেভ ডিভাইস SS পিনের মাধ্যমে নির্বাচিত হয়। যখন SS/CS পিন LOW থাকে, তখন স্লেভ সক্রিয় থাকে এবং ডেটা আদান-প্রদান হয়।
একটি সাধারণ উদাহরণ হলো Arduino তে SPI প্রোটোকলের মাধ্যমে একটি সেন্সর থেকে ডেটা পড়া।
#include <SPI.h> // SPI লাইব্রেরি ইনক্লুড করা
void setup() {
Serial.begin(9600); // সিরিয়াল মনিটর শুরু
SPI.begin(); // SPI যোগাযোগ শুরু
pinMode(SS, OUTPUT); // SS পিনকে আউটপুট হিসেবে সেট করা
digitalWrite(SS, HIGH); // স্লেভকে প্রথমে নিষ্ক্রিয় রাখা
}
void loop() {
digitalWrite(SS, LOW); // স্লেভ সক্রিয় করা
byte data = SPI.transfer(0x00); // ডেটা প্রেরণ এবং গ্রহণ
digitalWrite(SS, HIGH); // স্লেভ নিষ্ক্রিয় করা
Serial.print("Received Data: ");
Serial.println(data); // প্রাপ্ত ডেটা প্রিন্ট করা
delay(1000); // ১ সেকেন্ড বিলম্ব
}
SPI.begin()
: SPI প্রোটোকল চালু করে।SPI.transfer()
: SPI লাইনের মাধ্যমে ডেটা প্রেরণ এবং গ্রহণ করে।digitalWrite(SS, LOW)
: নির্দিষ্ট স্লেভকে সক্রিয় করে।digitalWrite(SS, HIGH)
: স্লেভকে নিষ্ক্রিয় করে।SPI প্রোটোকল একটি অত্যন্ত কার্যকরী ডেটা ট্রান্সফার পদ্ধতি যা দ্রুত যোগাযোগের জন্য প্রয়োজনীয়। Arduino তে SPI ব্যবহার করে বিভিন্ন পেরিফেরাল ডিভাইসের সাথে সহজে এবং দ্রুত ডেটা আদান-প্রদান করা যায়।
common.read_more